<?php

/**
 * Helper/uploader.php
 */

namespace RHX\Helper;

class Uploader {

    /**
     *
     * @param string $index
     * @param string $destination
     * @param int $maxsize
     * @param array $extensions
     * @return array
     */
    public static function upload($index, $destination, $maxsize = FALSE, $extensions = FALSE) {
	$return = array(
	    'done'		 => false,
	    'name'		 => null,
	    'destination'	 => null,
	    'extenstion'	 => null,
	    'error'		 => '',
	);
	//Test1: fichier correctement uploadé
	if (!isset($_FILES[$index]) OR $_FILES[$index]['error'] > 0) {
	    $return['error'] = "Le Fichier n'a pas été correctement uploadé";
	    return $return;
	}
	//Test2: taille limite
	if ($maxsize !== FALSE AND $_FILES[$index]['size'] > $maxsize) {
	    $return['error'] = "Le Fichier a dépassé la taille limite de fichier";
	    return $return;
	}
	//Test3: extension
	$ext = strtolower(substr(strrchr($_FILES[$index]['name'], '.'), 1));
        
	if ($extensions !== FALSE AND !in_array($ext, $extensions)) {
	    $return['error'] = "Le type du Fichier est incorrect";            
	    return $return;
	}
	//Déplacement
	$done = move_uploaded_file($_FILES[$index]['tmp_name'], $destination);
	if (!$done) {
	    $return['error'] = "Le fichier n'a pas été télécharger";
	    return $return;
	}
	$name	 = $_FILES[$index]['name'];

	return array(
	    'done'		 => $done,
	    'name'		 => $name,
	    'destination'	 => $destination,
	    'extension'	 => $ext,
	    'error'		 => '',
	);
    }

//EXEMPLES
// $upload1 = upload('icone','uploads/monicone1',15360, array('png','gif','jpg','jpeg') );
// $upload2 = upload('mon_fichier','uploads/file112',1048576, FALSE );
}

?>
